﻿using System;
using System.Collections.Generic;
using Manager;
using UnityEngine;

// Token: 0x02000275 RID: 629
public class CharFemaleCustom : global::CharCustom
{
	// Token: 0x06000F13 RID: 3859 RVA: 0x0006E7CC File Offset: 0x0006C9CC
	public CharFemaleCustom(global::CharInfo info) : base(info, global::CharDefine.cf_headshapename.Length, global::CharDefine.cf_bodyshapename.Length)
	{
		this.sibFace = new global::ShapeHeadInfoFemale();
		this.sibBody = new global::ShapeBodyInfoFemale();
		this.femaleFile = (this.chaFile as global::CharFemaleFile);
		this.femaleCustomInfo = (this.customInfo as global::CharFileInfoCustomFemale);
		this.femaleStatusInfo = this.femaleFile.femaleStatusInfo;
	}

	// Token: 0x06000F14 RID: 3860 RVA: 0x0006E8A8 File Offset: 0x0006CAA8
	public virtual void AddUpdateCMFaceTexFlags(bool inpBase, bool inpTatoo, bool inpCheek, bool inpEyeshadow, bool inpLip, bool inpMole)
	{
		if (inpBase)
		{
			this.updateCMFaceTex[0] = inpBase;
		}
		if (inpTatoo)
		{
			this.updateCMFaceTex[1] = inpTatoo;
		}
		if (inpCheek)
		{
			this.updateCMFaceTex[2] = inpCheek;
		}
		if (inpEyeshadow)
		{
			this.updateCMFaceTex[3] = inpEyeshadow;
		}
		if (inpLip)
		{
			this.updateCMFaceTex[4] = inpLip;
		}
		if (inpMole)
		{
			this.updateCMFaceTex[5] = inpMole;
		}
	}

	// Token: 0x06000F15 RID: 3861 RVA: 0x0006E918 File Offset: 0x0006CB18
	public virtual void AddUpdateCMFaceColorFlags(bool inpBase, bool inpTatoo, bool inpCheek, bool inpEyeshadow, bool inpLip, bool inpMole)
	{
		if (inpBase)
		{
			this.updateCMFaceColor[0] = inpBase;
		}
		if (inpTatoo)
		{
			this.updateCMFaceColor[1] = inpTatoo;
		}
		if (inpCheek)
		{
			this.updateCMFaceColor[2] = inpCheek;
		}
		if (inpEyeshadow)
		{
			this.updateCMFaceColor[3] = inpEyeshadow;
		}
		if (inpLip)
		{
			this.updateCMFaceColor[4] = inpLip;
		}
		if (inpMole)
		{
			this.updateCMFaceColor[5] = inpMole;
		}
	}

	// Token: 0x06000F16 RID: 3862 RVA: 0x0006E988 File Offset: 0x0006CB88
	public virtual void AddUpdateCMBodyTexFlags(bool inpBase, bool inpTatoo, bool inpSunburn)
	{
		if (inpBase)
		{
			this.updateCMBodyTex[0] = inpBase;
		}
		if (inpTatoo)
		{
			this.updateCMBodyTex[1] = inpTatoo;
		}
		if (inpSunburn)
		{
			this.updateCMBodyTex[2] = inpSunburn;
		}
	}

	// Token: 0x06000F17 RID: 3863 RVA: 0x0006E9B8 File Offset: 0x0006CBB8
	public virtual void AddUpdateCMBodyColorFlags(bool inpBase, bool inpTatoo, bool inpSunburn)
	{
		if (inpBase)
		{
			this.updateCMBodyColor[0] = inpBase;
		}
		if (inpTatoo)
		{
			this.updateCMBodyColor[1] = inpTatoo;
		}
		if (inpSunburn)
		{
			this.updateCMBodyColor[2] = inpSunburn;
		}
	}

	// Token: 0x06000F18 RID: 3864 RVA: 0x0006E9E8 File Offset: 0x0006CBE8
	public virtual global::ListTypeTexture LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture type, ref int id, ref Texture2D diffuse, ref Texture normal, ref Texture detail)
	{
		Dictionary<int, global::ListTypeTexture> femaleTextureList = this.chaInfo.ListInfo.GetFemaleTextureList(type, true);
		if (femaleTextureList == null)
		{
			return null;
		}
		return base.LoatTextureInfoBase(femaleTextureList, ref id, ref diffuse, ref normal, ref detail);
	}

	// Token: 0x06000F19 RID: 3865 RVA: 0x0006EA20 File Offset: 0x0006CC20
	public virtual bool CreateFaceTexture()
	{
		global::CustomTextureControl customTexCtrlFace = this.chaInfo.chaBody.customTexCtrlFace;
		Material customMatFace = this.chaInfo.chaBody.customMatFace;
		if (null == customMatFace)
		{
			return false;
		}
		Texture2D texture2D = null;
		Texture texture = null;
		Texture texture2 = null;
		bool flag = false;
		bool flag2 = false;
		if (this.updateCMFaceTex[0])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_face, ref this.femaleCustomInfo.texFaceId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlFace.SetMainTexture(texture2D);
				flag = true;
				flag2 = true;
				customMatFace.SetTexture(global::Singleton<Manager.Character>.Instance._BumpMap, texture);
			}
			this.updateCMFaceTex[0] = false;
		}
		if (this.updateCMFaceColor[0])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.skinColor;
			customTexCtrlFace.SetColor(global::Singleton<Manager.Character>.Instance._Color, hscolorSet.rgbDiffuse);
			flag = true;
			customMatFace.SetColor(global::Singleton<Manager.Character>.Instance._SpecColor, hscolorSet.rgbSpecular);
			customMatFace.SetFloat(global::Singleton<Manager.Character>.Instance._Metallic, hscolorSet.specularIntensity);
			customMatFace.SetFloat(global::Singleton<Manager.Character>.Instance._Smoothness, hscolorSet.specularSharpness);
			this.updateCMFaceColor[0] = false;
		}
		if (this.updateCMFaceTex[1])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_tattoo_f, ref this.femaleCustomInfo.texTattoo_fId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture3, texture2D);
				if (texture2D)
				{
					customTexCtrlFace.SetOffsetAndTiling("_Texture3", 1024, 1024, texture2D.width, texture2D.height, listTypeTexture.PX, listTypeTexture.PY);
				}
				flag = true;
				flag2 = true;
			}
			this.updateCMFaceTex[1] = false;
		}
		if (this.updateCMFaceColor[1])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.tattoo_fColor;
			customTexCtrlFace.SetColor(global::Singleton<Manager.Character>.Instance._Color3, hscolorSet.rgbaDiffuse);
			this.updateCMFaceColor[1] = false;
			flag = true;
		}
		if (this.updateCMFaceTex[2])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_cheek, ref this.femaleCustomInfo.texCheekId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture4, texture2D);
				if (texture2D)
				{
					customTexCtrlFace.SetOffsetAndTiling("_Texture4", 1024, 1024, texture2D.width, texture2D.height, listTypeTexture.PX, listTypeTexture.PY);
				}
				flag = true;
				flag2 = true;
			}
			this.updateCMFaceTex[2] = false;
		}
		if (this.updateCMFaceColor[2])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.cheekColor;
			customTexCtrlFace.SetColor(global::Singleton<Manager.Character>.Instance._Color4, hscolorSet.rgbaDiffuse);
			this.updateCMFaceColor[2] = false;
			flag = true;
		}
		if (this.updateCMFaceTex[3])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_eyeshadow, ref this.femaleCustomInfo.texEyeshadowId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture5, texture2D);
				if (texture2D)
				{
					customTexCtrlFace.SetOffsetAndTiling("_Texture5", 1024, 1024, texture2D.width, texture2D.height, listTypeTexture.PX, listTypeTexture.PY);
				}
				flag = true;
				flag2 = true;
			}
			this.updateCMFaceTex[3] = false;
		}
		if (this.updateCMFaceColor[3])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.eyeshadowColor;
			customTexCtrlFace.SetColor(global::Singleton<Manager.Character>.Instance._Color5, hscolorSet.rgbaDiffuse);
			this.updateCMFaceColor[3] = false;
			flag = true;
		}
		if (this.updateCMFaceTex[4])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_lip, ref this.femaleCustomInfo.texLipId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture6, texture2D);
				if (texture2D)
				{
					customTexCtrlFace.SetOffsetAndTiling("_Texture6", 1024, 1024, texture2D.width, texture2D.height, listTypeTexture.PX, listTypeTexture.PY);
				}
				flag = true;
				flag2 = true;
			}
			this.updateCMFaceTex[4] = false;
		}
		if (this.updateCMFaceColor[4])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.lipColor;
			customTexCtrlFace.SetColor(global::Singleton<Manager.Character>.Instance._Color6, hscolorSet.rgbaDiffuse);
			this.updateCMFaceColor[4] = false;
			flag = true;
		}
		if (this.updateCMFaceTex[5])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_mole, ref this.femaleCustomInfo.texMoleId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture7, texture2D);
				if (texture2D)
				{
					customTexCtrlFace.SetOffsetAndTiling("_Texture7", 1024, 1024, texture2D.width, texture2D.height, listTypeTexture.PX, listTypeTexture.PY);
				}
				flag = true;
				flag2 = true;
			}
			this.updateCMFaceTex[5] = false;
		}
		if (this.updateCMFaceColor[5])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.moleColor;
			customTexCtrlFace.SetColor(global::Singleton<Manager.Character>.Instance._Color7, hscolorSet.rgbaDiffuse);
			this.updateCMFaceColor[5] = false;
			flag = true;
		}
		if (flag)
		{
			customTexCtrlFace.RebuildTextureAndSetMaterial();
		}
		if (this.releaseCustomInputTexture)
		{
			this.ReleaseFaceCustomTexture();
		}
		if (flag2)
		{
			Resources.UnloadUnusedAssets();
		}
		return true;
	}

	// Token: 0x06000F1A RID: 3866 RVA: 0x0006EF3C File Offset: 0x0006D13C
	public virtual bool ChangeFaceDetailTex()
	{
		Texture2D texture2D = null;
		Texture texture = null;
		Texture texture2 = null;
		Material customMatFace = this.chaInfo.chaBody.customMatFace;
		if (null == customMatFace)
		{
			return false;
		}
		global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_detail_f, ref this.femaleCustomInfo.texFaceDetailId, ref texture2D, ref texture, ref texture2);
		if (listTypeTexture != null)
		{
			customMatFace.SetTexture(global::Singleton<Manager.Character>.Instance._BlendNormalMap, texture2);
			Resources.UnloadUnusedAssets();
		}
		return true;
	}

	// Token: 0x06000F1B RID: 3867 RVA: 0x0006EFAC File Offset: 0x0006D1AC
	public virtual bool ChangeFaceDetailWeight()
	{
		Material customMatFace = this.chaInfo.chaBody.customMatFace;
		if (null == customMatFace)
		{
			return false;
		}
		customMatFace.SetFloat(global::Singleton<Manager.Character>.Instance._BlendNormalMapScale, this.femaleCustomInfo.faceDetailWeight);
		return true;
	}

	// Token: 0x06000F1C RID: 3868 RVA: 0x0006EFF4 File Offset: 0x0006D1F4
	public virtual bool ReleaseFaceCustomTexture()
	{
		global::CustomTextureControl customTexCtrlFace = this.chaInfo.chaBody.customTexCtrlFace;
		if (customTexCtrlFace == null)
		{
			return false;
		}
		customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._MainTex, null);
		customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture3, null);
		customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture4, null);
		customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture5, null);
		customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture6, null);
		customTexCtrlFace.SetTexture(global::Singleton<Manager.Character>.Instance._Texture7, null);
		Resources.UnloadUnusedAssets();
		return true;
	}

	// Token: 0x06000F1D RID: 3869 RVA: 0x0006F088 File Offset: 0x0006D288
	public virtual bool CreateBodyTexture()
	{
		global::CustomTextureControl customTexCtrlBody = this.chaInfo.chaBody.customTexCtrlBody;
		Material customMatBody = this.chaInfo.chaBody.customMatBody;
		if (null == customMatBody)
		{
			return false;
		}
		Texture2D texture2D = null;
		Texture texture = null;
		Texture texture2 = null;
		bool flag = false;
		bool flag2 = false;
		if (this.updateCMBodyTex[0])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_body, ref this.femaleCustomInfo.texBodyId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlBody.SetMainTexture(texture2D);
				flag = true;
				flag2 = true;
			}
			this.updateCMBodyTex[0] = false;
		}
		if (this.updateCMBodyColor[0])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.skinColor;
			customTexCtrlBody.SetColor(global::Singleton<Manager.Character>.Instance._Color, hscolorSet.rgbDiffuse);
			flag = true;
			customMatBody.SetColor(global::Singleton<Manager.Character>.Instance._SpecColor, hscolorSet.rgbSpecular);
			customMatBody.SetFloat(global::Singleton<Manager.Character>.Instance._Metallic, hscolorSet.specularIntensity);
			customMatBody.SetFloat(global::Singleton<Manager.Character>.Instance._Smoothness, hscolorSet.specularSharpness);
			this.updateCMBodyColor[0] = false;
		}
		if (this.updateCMBodyTex[1])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_tattoo_b, ref this.femaleCustomInfo.texTattoo_bId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlBody.SetTexture(global::Singleton<Manager.Character>.Instance._Texture3, texture2D);
				if (texture2D)
				{
					customTexCtrlBody.SetOffsetAndTiling("_Texture3", 1024, 1024, texture2D.width, texture2D.height, listTypeTexture.PX, listTypeTexture.PY);
				}
				flag = true;
				flag2 = true;
			}
			this.updateCMBodyTex[1] = false;
		}
		if (this.updateCMBodyColor[1])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.tattoo_bColor;
			customTexCtrlBody.SetColor(global::Singleton<Manager.Character>.Instance._Color3, hscolorSet.rgbaDiffuse);
			this.updateCMBodyColor[1] = false;
			flag = true;
		}
		if (this.updateCMBodyTex[2])
		{
			global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_sunburn, ref this.femaleCustomInfo.texSunburnId, ref texture2D, ref texture, ref texture2);
			if (listTypeTexture != null)
			{
				customTexCtrlBody.SetTexture(global::Singleton<Manager.Character>.Instance._Texture2, texture2D);
				flag = true;
				flag2 = true;
			}
			this.updateCMBodyTex[2] = false;
		}
		if (this.updateCMBodyColor[2])
		{
			global::HSColorSet hscolorSet = this.femaleCustomInfo.sunburnColor;
			customTexCtrlBody.SetColor(global::Singleton<Manager.Character>.Instance._Color2, hscolorSet.rgbaDiffuse);
			this.updateCMBodyColor[2] = false;
			flag = true;
		}
		if (flag)
		{
			customTexCtrlBody.RebuildTextureAndSetMaterial();
		}
		if (this.releaseCustomInputTexture)
		{
			this.ReleaseBodyCustomTexture();
		}
		if (flag2)
		{
			Resources.UnloadUnusedAssets();
		}
		return true;
	}

	// Token: 0x06000F1E RID: 3870 RVA: 0x0006F318 File Offset: 0x0006D518
	public virtual bool ChangeBodyDetailTex()
	{
		Texture2D texture2D = null;
		Texture texture = null;
		Texture texture2 = null;
		Material customMatBody = this.chaInfo.chaBody.customMatBody;
		if (null == customMatBody)
		{
			return false;
		}
		global::ListTypeTexture listTypeTexture = this.LoatTextureInfo(global::CharaListInfo.TypeFemaleTexture.cf_t_detail_b, ref this.femaleCustomInfo.texBodyDetailId, ref texture2D, ref texture, ref texture2);
		if (listTypeTexture != null)
		{
			customMatBody.SetTexture(global::Singleton<Manager.Character>.Instance._BlendNormalMap, texture2);
			Resources.UnloadUnusedAssets();
		}
		return true;
	}

	// Token: 0x06000F1F RID: 3871 RVA: 0x0006F388 File Offset: 0x0006D588
	public virtual bool ChangeBodyDetailWeight()
	{
		Material customMatBody = this.chaInfo.chaBody.customMatBody;
		if (null == customMatBody)
		{
			return false;
		}
		customMatBody.SetFloat(global::Singleton<Manager.Character>.Instance._BlendNormalMapScale, this.femaleCustomInfo.bodyDetailWeight);
		return true;
	}

	// Token: 0x06000F20 RID: 3872 RVA: 0x0006F3D0 File Offset: 0x0006D5D0
	public virtual bool ReleaseBodyCustomTexture()
	{
		global::CustomTextureControl customTexCtrlBody = this.chaInfo.chaBody.customTexCtrlBody;
		if (customTexCtrlBody == null)
		{
			return false;
		}
		customTexCtrlBody.SetTexture(global::Singleton<Manager.Character>.Instance._MainTex, null);
		customTexCtrlBody.SetTexture(global::Singleton<Manager.Character>.Instance._Texture2, null);
		customTexCtrlBody.SetTexture(global::Singleton<Manager.Character>.Instance._Texture3, null);
		Resources.UnloadUnusedAssets();
		return true;
	}

	// Token: 0x06000F21 RID: 3873 RVA: 0x0006F430 File Offset: 0x0006D630
	public override bool InitShapeFace(Transform trfBone, string assetBundleAnmShapeFace, string assetAnmShapeFace)
	{
		if (this.sibFace == null)
		{
			return false;
		}
		if (null == trfBone)
		{
			return false;
		}
		string cateInfoName = "cf_customhead";
		this.sibFace.InitShapeInfo(assetBundleAnmShapeFace, "list/customshape.unity3d", assetAnmShapeFace, cateInfoName, trfBone);
		for (int i = 0; i < this.ShapeFaceNum; i++)
		{
			this.sibFace.ChangeValue(i, this.customInfo.shapeValueFace[i]);
		}
		this.chaInfo.chaBody.updateShapeFace = true;
		return true;
	}

	// Token: 0x06000F22 RID: 3874 RVA: 0x0006F4B8 File Offset: 0x0006D6B8
	public override bool InitShapeBody(Transform trfBone)
	{
		if (this.sibBody == null)
		{
			return false;
		}
		if (null == trfBone)
		{
			return false;
		}
		string anmKeyInfoName = "cf_anmShapeBody";
		string cateInfoName = "cf_custombody";
		this.sibBody.InitShapeInfo("list/customshape.unity3d", "list/customshape.unity3d", anmKeyInfoName, cateInfoName, trfBone);
		for (int i = 0; i < this.ShapeBodyNum - 1; i++)
		{
			this.sibBody.ChangeValue(i, this.customInfo.shapeValueBody[i]);
		}
		this.sibBody.ChangeValue(this.ShapeBodyNum - 1, this.femaleStatusInfo.nipStand);
		this.chaInfo.chaBody.updateShapeBody = true;
		return true;
	}

	// Token: 0x06000F23 RID: 3875 RVA: 0x0006F568 File Offset: 0x0006D768
	public override bool SetShapeBodyValue(int index, float value)
	{
		if (index >= this.ShapeBodyNum)
		{
			return false;
		}
		if (index == this.ShapeBodyNum - 1)
		{
			this.femaleStatusInfo.nipStand = value;
		}
		else
		{
			this.customInfo.shapeValueBody[index] = value;
		}
		if (this.sibBody != null && this.sibBody.InitEnd)
		{
			this.sibBody.ChangeValue(index, value);
		}
		this.chaInfo.chaBody.updateShapeBody = true;
		return true;
	}

	// Token: 0x06000F24 RID: 3876 RVA: 0x0006F5EC File Offset: 0x0006D7EC
	public override float GetShapeBodyValue(int index)
	{
		if (index >= this.ShapeBodyNum)
		{
			return 0f;
		}
		if (index == this.ShapeBodyNum - 1)
		{
			return this.femaleStatusInfo.nipStand;
		}
		return this.customInfo.shapeValueBody[index];
	}

	// Token: 0x06000F25 RID: 3877 RVA: 0x0006F628 File Offset: 0x0006D828
	public override void UpdateShapeBody()
	{
		if (this.sibBody == null || !this.sibBody.InitEnd)
		{
			return;
		}
		global::ShapeBodyInfoFemale shapeBodyInfoFemale = this.sibBody as global::ShapeBodyInfoFemale;
		if (shapeBodyInfoFemale == null)
		{
			return;
		}
		shapeBodyInfoFemale.updateMask = 31;
		this.sibBody.Update();
		if (this.femaleStatusInfo.disableShapeNipL)
		{
			this.sibBody.ChangeValue(this.ShapeBodyNum - 1, 0f);
			shapeBodyInfoFemale.updateMask = 4;
			this.sibBody.Update();
		}
		if (this.femaleStatusInfo.disableShapeNipR)
		{
			this.sibBody.ChangeValue(this.ShapeBodyNum - 1, 0f);
			shapeBodyInfoFemale.updateMask = 8;
			this.sibBody.Update();
		}
		int[] array = new int[]
		{
			2,
			3,
			4,
			5,
			6,
			7,
			8
		};
		if (this.femaleStatusInfo.disableShapeBustL)
		{
			for (int i = 0; i < array.Length; i++)
			{
				this.sibBody.ChangeValue(array[i], 0.5f);
			}
			shapeBodyInfoFemale.updateMask = 1;
			this.sibBody.Update();
		}
		if (this.femaleStatusInfo.disableShapeBustR)
		{
			for (int j = 0; j < array.Length; j++)
			{
				this.sibBody.ChangeValue(array[j], 0.5f);
			}
			shapeBodyInfoFemale.updateMask = 2;
			this.sibBody.Update();
		}
	}

	// Token: 0x06000F26 RID: 3878 RVA: 0x0006F794 File Offset: 0x0006D994
	public virtual void DisableShapeBust(int LR)
	{
		if (this.sibBody != null && this.sibBody.InitEnd)
		{
			int[] array = new int[]
			{
				2,
				3,
				4,
				5,
				6,
				7,
				8
			};
			for (int i = 0; i < array.Length; i++)
			{
				this.sibBody.ChangeValue(array[i], this.customInfo.shapeValueBody[array[i]]);
			}
			this.sibBody.ChangeValue(this.ShapeBodyNum - 1, this.femaleStatusInfo.nipStand);
			this.chaInfo.chaBody.updateShapeBody = true;
			if (LR == 0)
			{
				this.femaleStatusInfo.disableShapeBustL = true;
			}
			else if (LR == 1)
			{
				this.femaleStatusInfo.disableShapeBustR = true;
			}
			else
			{
				this.femaleStatusInfo.disableShapeBustL = true;
				this.femaleStatusInfo.disableShapeBustR = true;
			}
			global::CharFemaleBody charFemaleBody = this.chaInfo.chaBody as global::CharFemaleBody;
			charFemaleBody.resetupDynamicBoneBust = true;
		}
	}

	// Token: 0x06000F27 RID: 3879 RVA: 0x0006F890 File Offset: 0x0006DA90
	public virtual void EnableShapeBust(int LR)
	{
		if (this.sibBody != null && this.sibBody.InitEnd)
		{
			int[] array = new int[]
			{
				2,
				3,
				4,
				5,
				6,
				7,
				8
			};
			for (int i = 0; i < array.Length; i++)
			{
				this.sibBody.ChangeValue(array[i], this.customInfo.shapeValueBody[array[i]]);
			}
			this.sibBody.ChangeValue(this.ShapeBodyNum - 1, this.femaleStatusInfo.nipStand);
			this.chaInfo.chaBody.updateShapeBody = true;
			if (LR == 0)
			{
				this.femaleStatusInfo.disableShapeBustL = false;
			}
			else if (LR == 1)
			{
				this.femaleStatusInfo.disableShapeBustR = false;
			}
			else
			{
				this.femaleStatusInfo.disableShapeBustL = false;
				this.femaleStatusInfo.disableShapeBustR = false;
			}
			global::CharFemaleBody charFemaleBody = this.chaInfo.chaBody as global::CharFemaleBody;
			charFemaleBody.resetupDynamicBoneBust = true;
		}
	}

	// Token: 0x06000F28 RID: 3880 RVA: 0x0006F98C File Offset: 0x0006DB8C
	public virtual void DisableShapeNip(int LR)
	{
		if (this.sibBody != null && this.sibBody.InitEnd)
		{
			int[] array = new int[]
			{
				2,
				3,
				4,
				5,
				6,
				7,
				8
			};
			for (int i = 0; i < array.Length; i++)
			{
				this.sibBody.ChangeValue(array[i], this.customInfo.shapeValueBody[array[i]]);
			}
			this.sibBody.ChangeValue(this.ShapeBodyNum - 1, this.femaleStatusInfo.nipStand);
			this.chaInfo.chaBody.updateShapeBody = true;
			if (LR == 0)
			{
				this.femaleStatusInfo.disableShapeNipL = true;
			}
			else if (LR == 1)
			{
				this.femaleStatusInfo.disableShapeNipR = true;
			}
			else
			{
				this.femaleStatusInfo.disableShapeNipL = true;
				this.femaleStatusInfo.disableShapeNipR = true;
			}
			global::CharFemaleBody charFemaleBody = this.chaInfo.chaBody as global::CharFemaleBody;
			charFemaleBody.resetupDynamicBoneBust = true;
		}
	}

	// Token: 0x06000F29 RID: 3881 RVA: 0x0006FA88 File Offset: 0x0006DC88
	public virtual void EnableShapeNip(int LR)
	{
		if (this.sibBody != null && this.sibBody.InitEnd)
		{
			int[] array = new int[]
			{
				2,
				3,
				4,
				5,
				6,
				7,
				8
			};
			for (int i = 0; i < array.Length; i++)
			{
				this.sibBody.ChangeValue(array[i], this.customInfo.shapeValueBody[array[i]]);
			}
			this.sibBody.ChangeValue(this.ShapeBodyNum - 1, this.femaleStatusInfo.nipStand);
			this.chaInfo.chaBody.updateShapeBody = true;
			if (LR == 0)
			{
				this.femaleStatusInfo.disableShapeNipL = false;
			}
			else if (LR == 1)
			{
				this.femaleStatusInfo.disableShapeNipR = false;
			}
			else
			{
				this.femaleStatusInfo.disableShapeNipL = false;
				this.femaleStatusInfo.disableShapeNipR = false;
			}
			global::CharFemaleBody charFemaleBody = this.chaInfo.chaBody as global::CharFemaleBody;
			charFemaleBody.resetupDynamicBoneBust = true;
		}
	}

	// Token: 0x06000F2A RID: 3882 RVA: 0x0006FB84 File Offset: 0x0006DD84
	public override void ChangeHairColor(int parts)
	{
		this.ChangeHairColor(parts, this.femaleCustomInfo.hairColor[parts]);
	}

	// Token: 0x06000F2B RID: 3883 RVA: 0x0006FB9C File Offset: 0x0006DD9C
	public override void ChangeHairColor(int parts, global::HSColorSet color)
	{
		global::CharReference.TagObjKey[] array = new global::CharReference.TagObjKey[]
		{
			global::CharReference.TagObjKey.ObjHairB,
			global::CharReference.TagObjKey.ObjHairF,
			global::CharReference.TagObjKey.ObjHairS,
			global::CharReference.TagObjKey.ObjHairO
		};
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(array[parts]);
		if (tagInfo.Count == 0)
		{
			return;
		}
		this.femaleCustomInfo.hairColor[parts].Copy(color);
		global::ColorChange.SetHSColor(tagInfo, color, true, true, null, true, true);
	}

	// Token: 0x06000F2C RID: 3884 RVA: 0x0006FBF8 File Offset: 0x0006DDF8
	public override void ChangeHairAcsColor(int parts)
	{
		this.ChangeHairAcsColor(parts, this.femaleCustomInfo.hairAcsColor[parts]);
	}

	// Token: 0x06000F2D RID: 3885 RVA: 0x0006FC10 File Offset: 0x0006DE10
	public override void ChangeHairAcsColor(int parts, global::HSColorSet color)
	{
		global::CharReference.TagObjKey[] array = new global::CharReference.TagObjKey[]
		{
			global::CharReference.TagObjKey.ObjHairAcsB,
			global::CharReference.TagObjKey.ObjHairAcsF,
			global::CharReference.TagObjKey.ObjHairAcsS,
			global::CharReference.TagObjKey.ObjHairAcsO
		};
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(array[parts]);
		if (tagInfo.Count == 0)
		{
			return;
		}
		this.femaleCustomInfo.hairAcsColor[parts].Copy(color);
		global::ColorChange.SetHSColor(tagInfo, color, true, true, null, true, true);
	}

	// Token: 0x06000F2E RID: 3886 RVA: 0x0006FC70 File Offset: 0x0006DE70
	public override void UpdateAllCustom()
	{
	}

	// Token: 0x06000F2F RID: 3887 RVA: 0x0006FC74 File Offset: 0x0006DE74
	public override void ChangeCustomFaceWithoutCustomTexture()
	{
		this.ChangeEyebrow();
		this.ChangeEyelashes();
		this.ChangeEyeWColor();
		this.ChangeEyeL();
		this.ChangeEyeR();
		this.ChangeEyeHi();
		this.ChangeFaceDetailTex();
		this.ChangeFaceDetailWeight();
		base.SetFaceBaseMaterial();
	}

	// Token: 0x06000F30 RID: 3888 RVA: 0x0006FCB0 File Offset: 0x0006DEB0
	public override void ChangeCustomBodyWithoutCustomTexture()
	{
		this.ChangeNip();
		this.ChangeUnderHair();
		this.ChangeNailColor();
		this.ChangeBodyDetailTex();
		this.ChangeBodyDetailWeight();
		global::CharFemale charFemale = this.chaInfo as global::CharFemale;
		global::AreolaSize areola = charFemale.femaleBody.areola;
		if (areola != null)
		{
			areola.Blend(this.femaleCustomInfo.areolaSize);
		}
		base.SetBodyBaseMaterial();
	}

	// Token: 0x06000F31 RID: 3889 RVA: 0x0006FD14 File Offset: 0x0006DF14
	public override void ChangeEyebrow()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_eyebrow, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matEyebrowId, femaleMaterialList, global::CharReference.TagObjKey.ObjEyebrow);
		this.ChangeEyebrowColor();
	}

	// Token: 0x06000F32 RID: 3890 RVA: 0x0006FD50 File Offset: 0x0006DF50
	public override void ChangeEyebrowColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjEyebrow);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.eyebrowColor, true, true, null, true, true);
	}

	// Token: 0x06000F33 RID: 3891 RVA: 0x0006FD84 File Offset: 0x0006DF84
	public override void ChangeEyeWColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjEyeW);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.eyeWColor, true, true, null, true, true);
	}

	// Token: 0x06000F34 RID: 3892 RVA: 0x0006FDB8 File Offset: 0x0006DFB8
	public override void ChangeEyeL()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_eyeball, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matEyeLId, femaleMaterialList, global::CharReference.TagObjKey.ObjEyeL);
		this.ChangeEyeLColor();
	}

	// Token: 0x06000F35 RID: 3893 RVA: 0x0006FDF4 File Offset: 0x0006DFF4
	public override void ChangeEyeLColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjEyeL);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.eyeLColor, true, true, null, true, true);
	}

	// Token: 0x06000F36 RID: 3894 RVA: 0x0006FE28 File Offset: 0x0006E028
	public override void ChangeEyeR()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_eyeball, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matEyeRId, femaleMaterialList, global::CharReference.TagObjKey.ObjEyeR);
		this.ChangeEyeRColor();
	}

	// Token: 0x06000F37 RID: 3895 RVA: 0x0006FE64 File Offset: 0x0006E064
	public override void ChangeEyeRColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjEyeR);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.eyeRColor, true, true, null, true, true);
	}

	// Token: 0x06000F38 RID: 3896 RVA: 0x0006FE98 File Offset: 0x0006E098
	public virtual void ChangeEyelashes()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_eyelashes, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matEyelashesId, femaleMaterialList, global::CharReference.TagObjKey.ObjEyelashes);
		this.ChangeEyelashesColor();
	}

	// Token: 0x06000F39 RID: 3897 RVA: 0x0006FED4 File Offset: 0x0006E0D4
	public virtual void ChangeEyelashesColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjEyelashes);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.eyelashesColor, true, true, null, true, true);
	}

	// Token: 0x06000F3A RID: 3898 RVA: 0x0006FF08 File Offset: 0x0006E108
	public virtual void ChangeEyeHi()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_eyehi, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matEyeHiId, femaleMaterialList, global::CharReference.TagObjKey.ObjEyeHi);
		this.ChangeEyeHiColor();
	}

	// Token: 0x06000F3B RID: 3899 RVA: 0x0006FF44 File Offset: 0x0006E144
	public virtual void ChangeEyeHiColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjEyeHi);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.eyeHiColor, true, true, null, true, true);
	}

	// Token: 0x06000F3C RID: 3900 RVA: 0x0006FF78 File Offset: 0x0006E178
	public virtual void ChangeNip()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_nip, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matNipId, femaleMaterialList, global::CharReference.TagObjKey.ObjNip);
		this.ChangeNipColor();
	}

	// Token: 0x06000F3D RID: 3901 RVA: 0x0006FFB4 File Offset: 0x0006E1B4
	public virtual void ChangeNipColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjNip);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.nipColor, true, true, null, true, true);
	}

	// Token: 0x06000F3E RID: 3902 RVA: 0x0006FFE8 File Offset: 0x0006E1E8
	public virtual void ChangeUnderHair()
	{
		Dictionary<int, global::ListTypeMaterial> femaleMaterialList = this.chaInfo.ListInfo.GetFemaleMaterialList(global::CharaListInfo.TypeFemaleMaterial.cf_m_underhair, true);
		base.ChangeMaterial(ref this.femaleCustomInfo.matUnderhairId, femaleMaterialList, global::CharReference.TagObjKey.ObjUnderHair);
		this.ChangeUnderHairColor();
	}

	// Token: 0x06000F3F RID: 3903 RVA: 0x00070024 File Offset: 0x0006E224
	public virtual void ChangeUnderHairColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjUnderHair);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.underhairColor, true, true, null, true, true);
	}

	// Token: 0x06000F40 RID: 3904 RVA: 0x00070058 File Offset: 0x0006E258
	public virtual void ChangeNailColor()
	{
		List<GameObject> tagInfo = this.chaInfo.GetTagInfo(global::CharReference.TagObjKey.ObjNail);
		global::ColorChange.SetHSColor(tagInfo, this.femaleCustomInfo.nailColor, true, true, null, true, true);
	}

	// Token: 0x04001081 RID: 4225
	public global::CharFemaleFile femaleFile;

	// Token: 0x04001082 RID: 4226
	public global::CharFileInfoCustomFemale femaleCustomInfo;

	// Token: 0x04001083 RID: 4227
	public global::CharFileInfoStatusFemale femaleStatusInfo;

	// Token: 0x04001084 RID: 4228
	public bool[] updateCMFaceTex = new bool[Enum.GetNames(typeof(global::CharFemaleCustom.CM_FaceTexKind)).Length];

	// Token: 0x04001085 RID: 4229
	public bool[] updateCMFaceColor = new bool[Enum.GetNames(typeof(global::CharFemaleCustom.CM_FaceTexKind)).Length];

	// Token: 0x04001086 RID: 4230
	public bool[] updateCMBodyTex = new bool[Enum.GetNames(typeof(global::CharFemaleCustom.CM_BodyTexKind)).Length];

	// Token: 0x04001087 RID: 4231
	public bool[] updateCMBodyColor = new bool[Enum.GetNames(typeof(global::CharFemaleCustom.CM_BodyTexKind)).Length];

	// Token: 0x04001088 RID: 4232
	static int WIDESLIDER_080;

	// Token: 0x02000276 RID: 630
	public enum CM_FaceTexKind
	{
		// Token: 0x0400108A RID: 4234
		inpBase,
		// Token: 0x0400108B RID: 4235
		inpTatoo,
		// Token: 0x0400108C RID: 4236
		inpCheek,
		// Token: 0x0400108D RID: 4237
		inpEyeshadow,
		// Token: 0x0400108E RID: 4238
		inpLip,
		// Token: 0x0400108F RID: 4239
		inpMole
	}

	// Token: 0x02000277 RID: 631
	public enum CM_BodyTexKind
	{
		// Token: 0x04001091 RID: 4241
		inpBase,
		// Token: 0x04001092 RID: 4242
		inpTatoo,
		// Token: 0x04001093 RID: 4243
		inpSunburn
	}
}
